非推奨の API は v3.3 以降に削除されました
まとめ
Flutter に準拠して、非推奨ポリシー、 以降にサポートが終了した非推奨の API 3.3 安定版リリースは削除されました。
影響を受けるすべての API はこれにコンパイルされています 移行を支援する主要な情報源。あクイックリファレンスシートも利用可能です。
変更点
このセクションでは、影響を受けるクラスごとに非推奨をリストします。
RenderUnconstrainedBox
Flutter Fix によるサポート: いいえ
RenderUnconstrainedBox
v2.1 で非推奨になりました。
使用RenderConstraintsTransformBox
その代わり。
両方の軸に制約がない場合は、ConstraintsTransformBox.unconstrained
にconstraintsTransform
。
もしもRenderUnconstrainedBox.constrainedAxis
事前に設定されていた、
それぞれ置き換えます:
- どこ
constrainedAxis
以前はAxis.horizontal
、 設定constraintsTransform
にConstraintsTransformBox.widthUnconstrained
。 - どこ
constrainedAxis
以前はAxis.vertical
、 設定constraintsTransform
にConstraintsTransformBox.heightUnconstrained
。
この変更により、さらにいくつかのタイプの制約を導入できるようになりました。
による変革ConstraintsTransformBox
。旧バージョンのその他のパラメータ
API は新しい API と互換性があります。
移行ガイド
移行前のコード:
// Unconstrained
final RenderUnconstrainedBox unconstrained = RenderUnconstrainedBox(
textDirection: TextDirection.ltr,
child: RenderConstrainedBox(
additionalConstraints: const BoxConstraints.tightFor(height: 200.0),
),
alignment: Alignment.center,
);
// Constrained in horizontal axis
final RenderUnconstrainedBox unconstrained = RenderUnconstrainedBox(
constrainedAxis: Axis.horizontal,
textDirection: TextDirection.ltr,
child: RenderConstrainedBox(
additionalConstraints: const BoxConstraints.tightFor(width: 200.0, height: 200.0),
),
alignment: Alignment.center,
);
// Constrained in vertical axis
final RenderUnconstrainedBox unconstrained = RenderUnconstrainedBox(
constrainedAxis: Axis.vertical,
textDirection: TextDirection.ltr,
child: RenderFlex(
direction: Axis.vertical,
textDirection: TextDirection.ltr,
children: <RenderBox>[flexible],
),
alignment: Alignment.center,
);
移行後のコード:
// Unconstrained
final RenderConstraintsTransformBox unconstrained = RenderConstraintsTransformBox(
constraintsTransform: ConstraintsTransformBox.unconstrained,
textDirection: TextDirection.ltr,
child: RenderConstrainedBox(
additionalConstraints: const BoxConstraints.tightFor(height: 200.0),
),
alignment: Alignment.center,
);
// Constrained in horizontal axis
final RenderConstraintsTransformBox unconstrained = RenderConstraintsTransformBox(
constraintsTransform: ConstraintsTransformBox.widthUnconstrained,
textDirection: TextDirection.ltr,
child: RenderConstrainedBox(
additionalConstraints: const BoxConstraints.tightFor(width: 200.0, height: 200.0),
),
alignment: Alignment.center,
);
// Constrained in vertical axis
final RenderConstraintsTransformBox unconstrained = RenderConstraintsTransformBox(
constraintsTransform: ConstraintsTransformBox.widthUnconstrained,
textDirection: TextDirection.ltr,
child: RenderFlex(
direction: Axis.vertical,
textDirection: TextDirection.ltr,
children: <RenderBox>[flexible],
),
alignment: Alignment.center,
);
参考文献
API ドキュメント:
RenderConstraintsTransformBox
ConstraintsTransformBox
関連する PR:
- で廃止されました#78673
- に削除されました#111711
DragAnchor
、Draggable.dragAnchor
&LongPressDraggable.dragAnchor
Flutter Fixによるサポート: はい
列挙型DragAnchor
、およびその用途Draggable.dragAnchor
&LongPressDraggable.dragAnchor
v2.1 で非推奨になりました。
使用dragAnchorStrategy
その代わり。
この変更により、使用時のドラッグ可能なウィジェットのより正確なフィードバックが可能になりました。
他のウィジェットと組み合わせてStack
とInteractiveViewer
。
移行ガイド
移行前のコード:
Draggable draggable = Draggable();
draggable = Draggable(dragAnchor: DragAnchor.child);
draggable = Draggable(dragAnchor: DragAnchor.pointer);
LongPressDraggable longPressDraggable = LongPressDraggable();
longPressDraggable = LongPressDraggable(dragAnchor: DragAnchor.child);
longPressDraggable = LongPressDraggable(dragAnchor: DragAnchor.pointer);
移行後のコード:
Draggable draggable = Draggable();
draggable = Draggable(dragAnchorStrategy: childDragAnchorStrategy);
draggable = Draggable(dragAnchorStrategy: pointerDragAnchorStrategy);
LongPressDraggable longPressDraggable = LongPressDraggable();
longPressDraggable = LongPressDraggable(dragAnchorStrategy: childDragAnchorStrategy);
longPressDraggable = LongPressDraggable(dragAnchorStrategy: pointerDragAnchorStrategy);
参考文献
API ドキュメント:
Draggable
LongPressDraggable
DragAnchorStrategy
関連する問題:
- #73143
関連する PR:
- で廃止されました#79160
- に削除されました#111713
ScrollBehavior.buildViewportChrome
Flutter Fixによるサポート: はい
方法ScrollBehavior.buildViewportChrome
v2.1 で非推奨になりました。
この方法は、Scrollable
オーバースクロールを適用するウィジェット
インジケーターなどGlowingOverscrollIndicator
、デフォルトでは適切な
プラットフォーム。デフォルトのデコレータがさらに追加されると、次のようになります。Scrollbar
それぞれ
代わりに、置き換えるための個別のメソッドに分割されました。buildViewportChrome
。
これにより、拡張クラスで特定のデコレータのみをオーバーライドできるようになります。buildScrollbar
またbuildOverscrollIndicator
書き直す必要はなく、
どちらかを維持するためにコードを作成します。
移行ガイド
移行前のコード:
final ScrollBehavior scrollBehavior = ScrollBehavior();
scrollBehavior.buildViewportChrome(context, child, axisDirection);
移行後のコード:
final ScrollBehavior scrollBehavior = ScrollBehavior();
scrollBehavior.buildOverscrollIndicator(context, child, axisDirection);
参考文献
設計書:
API ドキュメント:
ScrollBehavior
関連する問題:
- スクロールバーは、Web とデスクトップで常に表示され、デフォルトでインスタンス化される必要があります。
関連する PR:
- #76739
- で廃止されました#78588
- に削除されました#111715
タイムライン
安定版リリース: 3.7